﻿/* Author: Achim Schnell */

namespace AppFx.Tokenization
{
    /// <summary>
    /// Parses expressions into tokens.
    /// </summary>
    public class ExpressionTokenizer : Tokenizer
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ExpressionTokenizer"/> class.
        /// </summary>
        public ExpressionTokenizer()
        {
            Add(new StringVerifier(this));
            Add(new WhitespaceVerifier(this));
            Add(new NumberVerifier(this));
            Add(new KeywordVerifier(this, "PI"));
            Add(new StringSymbolVerifier(this, "<>"));
            Add(new SymbolVerifier(this, '=', '&', '|', '!', '(', ')', '+', '-', '*', '/', '^'));
            Add(new BooleanVerifier(this));
        }
    }
}
